comments | difficulty | edit_url |
---|---|---|
true | 简单 |
URL化。编写一种方法,将字符串中的空格全部替换为%20
。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java
实现的话,请使用字符数组实现,以便直接在数组上操作。)
示例1:
输入:"Mr John Smith ", 13 输出:"Mr%20John%20Smith"
示例2:
输入:" ", 5 输出:"%20%20%20%20%20"
提示:
- 字符串长度在[0, 500000]范围内。
直接利用 replace
将所有 替换为
%20
:
时间复杂度
classSolution: defreplaceSpaces(self, S: str, length: int) ->str: returnS[:length].replace(' ', '%20')
functionreplaceSpaces(S: string,length: number): string{returnS.slice(0,length).replace(/\s/g,'%20');}
implSolution{pubfnreplace_spaces(s:String,length:i32) -> String{ s[..length asusize].replace(' ',"%20")}}
/** * @param {string} S * @param {number} length * @return {string} */varreplaceSpaces=function(S,length){returnencodeURI(S.substring(0,length));};
classSolution{func replaceSpaces(_ S:String, _ length:Int)->String{letsubstring=S.prefix(length)varresult=""forcharacterin substring {if character ==""{ result +="%20"}else{ result.append(character)}}return result }}
遍历字符串每个字符 %20
添加到结果中,否则添加
时间复杂度
classSolution: defreplaceSpaces(self, S: str, length: int) ->str: return''.join(['%20'ifc==' 'elsecforcinS[:length]])
classSolution { publicStringreplaceSpaces(StringS, intlength) { char[] cs = S.toCharArray(); intj = cs.length; for (inti = length - 1; i >= 0; --i) { if (cs[i] == ' ') { cs[--j] = '0'; cs[--j] = '2'; cs[--j] = '%'; } else { cs[--j] = cs[i]; } } returnnewString(cs, j, cs.length - j); } }
funcreplaceSpaces(Sstring, lengthint) string { // return url.PathEscape(S[:length])j:=len(S) b:= []byte(S) fori:=length-1; i>=0; i-- { ifb[i] ==' ' { b[j-1] ='0'b[j-2] ='2'b[j-3] ='%'j-=3 } else { b[j-1] =b[i] j-- } } returnstring(b[j:]) }
implSolution{pubfnreplace_spaces(s:String,length:i32) -> String{ s.chars().take(length asusize).map(|c| {if c == ' '{"%20".to_string()}else{ c.to_string()}}).collect()}}